This invention relates to electronic printers and printing systems, and more particularly, to a method of correcting for errors in positioning of one or more characters resulting from printing text data intended for a printer having one resolution on a printer having equivalent fonts, but a different resolution.
At present, electronic printers such as laser printers have certain standard resolutions, such as 240, 300 and 600 spots per inch (spi). To print text, electronic printers include libraries of fonts, stored in memory, that each have typefaces of various sizes for each character desired. Typically, an electronic printer prints one or more pages of text in response to data received from a host computer over a communications channel. The page data is formatted in a standard print language, such as IBM EBCDIC, that positions text on a page by grouping the text as strings of characters having the same typeface. For each character to be printed, the printer will access its font memory to retrieve a typeface of the appropriate character, size and font type, described as a bitmap or as a series of commands in a page description language. The bitmap describes, pel by pel, the image of the typeface the printer should print to represent the particular character required by the data. Similarly, the page description language has the similar effect of constructing an image of the typeface at the pel level. In both cases, the typeface is described in a manner that corresponds to the particular resolution of the printer.
It is desirable to be able to print text page data, intended for a printer having one resolution on a printer having a different resolution. More particular, it is desired that the text page data cause the first resolution and second resolution printers to print pages that are "light test compatible." Short of light test compatibility, a high standard, pages of text printed on the second resolution printer are generally acceptable if certain readily visible features are the same as on pages of text printed on the first resolution printer. In particular, any text alignment present on first resolution pages, such as right justification of text lines, should also be present on second resolution pages.
At present, efforts at light test compatibility have been directed towards converting fonts from the first resolution to the second resolution. Font designers have been most successful in converting fonts where one resolution is an integer multiple of the other resolution. For example, 300 spi fonts are readily converted to 600 spi fonts. More problematic is converting fonts where one resolution is not an integer multiple of the other resolution. For example, converting a 240 spi font to a 300 spi font involves increasing the width and height of the 240 spi font by a factor of 5/4. To match a 240 spi type having a width of 61 pels, a 300 spi type would need to be 76.25 pels wide. Most electronic printers, however, cannot print fractional pels. Accordingly, the approximating 300 spi type would need to be either 76 pels or 77 pels wide, 1/1200 of an inch too narrow and 3/1200 of an inch too wide, respectively. Either choice would contribute to failing the light test. Moreover, in a string of characters the effect of fractional pel conversion errors would be cumulative, leading to noticeable misalignment of lines of text. Accordingly, when printing text from page data originally intended for a first resolution printer on a second resolution printer having converted resolution fonts, there is a particular need for a method for correcting errors in the position of characters caused by resolution conversion error.